package br.com.advocacia.entidade;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity
@Table(name = "Jurisprudencia")
public class Jurisprudencia implements Serializable {

	private static final long serialVersionUID = -6264588986841163688L;

	@Id
	@GeneratedValue
	@Column(name = "ID")
	private Long id;

	private String materia;

	@ManyToOne
	@Fetch(FetchMode.SELECT)
	@JoinColumn(name = "ASSUNTO_ID")
	private AssuntoJurisprudencia assuntoJurisprudencia;

	@ManyToOne
	@Fetch(FetchMode.SELECT)
	@JoinColumn(name = "AREA_ID")
	private AreaProcessual areaProcessual;

	@ManyToOne
	@Fetch(FetchMode.SELECT)
	@JoinColumn(name = "INSTANCIA_ID")
	private Instancia instancia;

	private String autor;

	private String numeroProcesso;

	private Date dataPublicacao;

	private Date dataJulgamento;

	private String link;
	
	private String jurisprudencia;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getMateria() {
		return materia;
	}

	public void setMateria(String materia) {
		this.materia = materia;
	}

	public AssuntoJurisprudencia getAssuntoJurisprudencia() {
		return assuntoJurisprudencia;
	}

	public void setAssuntoJurisprudencia(AssuntoJurisprudencia assuntoJurisprudencia) {
		this.assuntoJurisprudencia = assuntoJurisprudencia;
	}

	public AreaProcessual getAreaProcessual() {
		return areaProcessual;
	}

	public void setAreaProcessual(AreaProcessual areaProcessual) {
		this.areaProcessual = areaProcessual;
	}

	public Instancia getInstancia() {
		return instancia;
	}

	public void setInstancia(Instancia instancia) {
		this.instancia = instancia;
	}

	public String getAutor() {
		return autor;
	}

	public void setAutor(String autor) {
		this.autor = autor;
	}

	public String getNumeroProcesso() {
		return numeroProcesso;
	}

	public void setNumeroProcesso(String numeroProcesso) {
		this.numeroProcesso = numeroProcesso;
	}

	public Date getDataPublicacao() {
		return dataPublicacao;
	}

	public void setDataPublicacao(Date dataPublicacao) {
		this.dataPublicacao = dataPublicacao;
	}

	public Date getDataJulgamento() {
		return dataJulgamento;
	}

	public void setDataJulgamento(Date dataJulgamento) {
		this.dataJulgamento = dataJulgamento;
	}

	public String getLink() {
		return link;
	}

	public void setLink(String link) {
		this.link = link;
	}

	public String getJurisprudencia() {
		return jurisprudencia;
	}

	public void setJurisprudencia(String jurisprudencia) {
		this.jurisprudencia = jurisprudencia;
	}
	
}